
#include "iostream"
#include "vector"
#include "unordered_map"
#include "algorithm"
#include "string"
#include "list"

class BigInt{
public:
    std::string num_str;
    BigInt(std::string s){
        num_str=s;
    }
    void print(){
        std::cout<<num_str;
    }
    int get_wei(int i){
        if(i>=num_str.size()){
            return 0;
        }
        return num_str[num_str.size()-1-i]-'0';
    }
    void set_wei(int i,int to){
        while(i>=num_str.size()){
            num_str='0'+num_str;
        }
        num_str[num_str.size()-1-i]=to+'0';
        auto c=num_str[num_str.size()-1-i];
    }
    void plus(BigInt bi){
        int minlen;
        minlen= std::max(num_str.size(),bi.num_str.size());
        int jinwei=0;
        for(int i=0;i<minlen;i++){
            int n1= get_wei(i);
            int n2=bi.get_wei(i);
            set_wei(i,(n1+n2+jinwei)%10);
            jinwei=(n1+n2+jinwei)/10;
        }
        if(jinwei){
            num_str='1'+num_str;
        }
    }
};

class Solution{
public:
    void readline(std::string &s){

        int div=s.find(" ");
        auto s1=s.substr(0,div);
        auto s2=s.substr(div+1,s.size()-div-1);
        if(s2[s2.size()-1]==' '){
            s2=s2.substr(0,s2.size()-1);
        }
        BigInt n1(s1),n2(s2);
        n1.print();
        printf(" + ");
        n2.print();
        printf(" = ");
        n1.plus(n2);
        n1.print();
        printf("\n");
        ;
    }
    void run(){
        int a;
        while(std::cin>>a){
            std::cin.get();
            int cnt=1;
            while(a){
                std::string s;
                std::cin.clear();
                std::getline(std::cin,s);

                if(cnt>1){
                    printf("\n");
                }
                printf("Case %d:\n",cnt);

                cnt++;
                readline(s);
                a--;
            }
        }
    }
};

int main() {
//    bool cur_num= true;
Solution().run();
    return 0;
}

